#ifndef __ANARCHY__
#define __ANARCHY__

NTSTATUS InstanceSetup(PCFLT_RELATED_OBJECTS FltObjects, FLT_INSTANCE_SETUP_FLAGS Flags, DEVICE_TYPE VolumeDeviceType, FLT_FILESYSTEM_TYPE VolumeFilesystemType);

NTSTATUS FltUnload(FLT_FILTER_UNLOAD_FLAGS Flags);

NTSTATUS  DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath);
VOID      DrvUnload(IN PDRIVER_OBJECT DriverObject);
NTSTATUS  DeviceControlFunction(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp);
NTSTATUS  CreateFunction(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp);
NTSTATUS  CloseFunction(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp);

FLT_PREOP_CALLBACK_STATUS  PRE_MJ_CREATE(PFLT_CALLBACK_DATA Data, PCFLT_RELATED_OBJECTS FltObjects, PVOID *CompletionContext);
FLT_PREOP_CALLBACK_STATUS  PRE_MJ_DEVICE_CONTROL(PFLT_CALLBACK_DATA Data, PCFLT_RELATED_OBJECTS FltObjects, PVOID *CompletionContext);
FLT_PREOP_CALLBACK_STATUS  PRE_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION(PFLT_CALLBACK_DATA Data, PCFLT_RELATED_OBJECTS FltObjects, PVOID *CompletionContext);


#endif